package q111_minDepth;

import CommonClass.Common.TreeNode;

public class Solution_1 {
    public int minDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }
        // 这里与最大深度有区分的是：
        // 只有左右两个子节点都是null 才是叶子节点 而我们需要找到最短的叶子节点
        // 因此 例如 1 null 2 这样的树 其最小深度是2
        // 我们的判断也需要修改
        if (root.left == null && root.right != null) {
            return minDepth(root.right) + 1;
        }

        if (root.left != null && root.right == null) {
            return minDepth(root.left) + 1;
        }

        return Math.min(minDepth(root.left), minDepth(root.right)) + 1;
    }
}
